
package com.ceair.mub2c.payment.payments.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.ceair.flight.payment.dto.AsyncPaymentCallbackDto;
import com.ceair.flight.payment.dto.CardInfoDto;
import com.ceair.flight.payment.dto.PayResponseDto;
import com.ceair.flight.payment.dto.SyncPaymentCallbackDto;
import com.ceair.flight.query.dto.EMDOrderDto;
import com.ceair.flight.query.dto.FlightOrderDto;
import com.ceair.flight.query.dto.PayDto;

public interface PaymentDubboService {
	
	public AsyncPaymentCallbackDto asyncPaymentCallback(String charset, PayResponseDto payResp);
	
	public SyncPaymentCallbackDto syncPaymentCallback(String charset, PayResponseDto payResp);
	
	public Map<String, String> paymentSubmit(Integer[] productTypes, String orderNo, String[] productId, Integer payTp, String bankCode, Integer orderTp, String accountInfo, BigDecimal amount, BigDecimal pointAmount, String userId, String userName, String channelCode, String clientIP, CardInfoDto cardInfo, String SCCode, String SubSCCode, String PCCode, String SubPCCode, String PCCodePoint, String SubPCCodePoint, String sessionId,String asyncUrl,String syncUrl, String transWebCountryCode);
	
	public Long getChannelCode(String site);
	
	public List<FlightOrderDto> getFlightOrderList(String orderNO);
	
	public List<EMDOrderDto> getEmdOrder(String emdOrderNO);
	
	public List<PayDto> getPayStatus(String orderNo, String[] emdOrderNos, String flightOrderNo);
	
	public boolean queryAv(FlightOrderDto flightOrderDto);
	
//	public CommonCardInfoRespDto queryCard(String scCode, String subScCode, String ceairMember);
//	
//	public CommonCardInfoRespDto queryCardList(String scCode, String subScCode, String ceairMember);
//
//	public CommonCardInfoRespDto insertCard(String scCode, String subScCode, String pcCode, String subPcCode, CardInfoDto cardInfo);
//	
//	public CommonCardInfoRespDto deleteCard(String scCode, String subScCode, CardInfoDto cardInfo);
	
	public List<Map<String, Object>> suspendAndResume(String orderNo, boolean suspend);
}
